import {request} from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
// pages/category/index.js
Page({

  data: {
     leftMenuList:[],//左侧的菜单数据
     rightContent:[],//右侧的商品数据
     currentStatus:-1,//被点击的左侧菜单
     scrollTop:0,//右侧内容的滚动条距离顶部的距离
  },
  //接口的返回数据
  Cates:[], 

  onLoad: function (options) {
    // 1、判断本地存储中有没有旧的数据
    // {time:Date.now{},data:[.....]} 
    // 2、没有旧数据 直接发送请求
    // 3、有旧数据 同时旧数据没有过期  就使用本地存储中的旧数据即可

    // 1、获取本地存储中的数据  (小程序中也是存在本地存储 技术的)
    const Cates = wx.getStorageSync('cates');
    // 2 判断 
    if(!Cates){
      // 不存在 发送请求获取数据
      this.getCates();  
    }else{
      //有旧数据 定义过期时间 5min
      if(Date.now()-Cates.time>5000*10){
      //重新发请求
        this.getCates();
      }else{
        //可以使用旧的数据
        this.Cates = Cates.data;
        //构造左侧的大菜单数据
        let leftMenuList = this.Cates.map(v=>v.cat_name);
        // 构造右侧的商品数据
        let rightContent = this.Cates[0].children;
        this.setData({
          leftMenuList,
          rightContent
        })
      }
     
    }
  },

  //获取分类数据
  async getCates(){
    var vm = this;
    // request({
    //   url:"/categories"
    // }).then(res=>{
    //   vm.Cates = res.data.message;
        // 把接口的数据存到本地的存储中
        // wx.setStorageSync("cates",{time:Date.now(),data:vm.Cates});
    //   //构造左侧的大菜单数据
    //   let leftMenuList = vm.Cates.map(v=>v.cat_name);
    //   // 构造右侧的商品数据
    //   let rightContent = vm.Cates[0].children;
    //   vm.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })
    // 1 使用es7的async await来发送请求
    const res = await request({ url: "/categories" });
    // vm.Cates = res.data.message;
    vm.Cates = res;
    // 把接口的数据存入到本地存储中
    wx.setStorageSync("cates", { time: Date.now(), data: vm.Cates });
    // 构造左侧的大菜单数据
    let leftMenuList = vm.Cates.map(v => v.cat_name);
    // 构造右侧的商品数据
    let rightContent = vm.Cates[0].children;
    vm.setData({
      leftMenuList,
      rightContent
    })
  },
  clickList(e){
    //1、获取被点击标题身上的索引
    //2、给data 中的currentIndex赋值
    //3、根据不同的索引来渲染右侧商品不同的内容
    // 构造右侧的商品数据
    var index = e.currentTarget.dataset.index;
    let rightContent = this.Cates[index].children;
    this.setData({
      currentStatus:index,
      rightContent,
    //重新设置 右侧内容的scroll-view标签的距离顶部的距离
      scrollTop:0
    })

    
  }

})